The present invention relates generally to graphical user interfaces for computer systems. More particularly, the present invention relates to methods and systems for replacing open windows which have been sprung to a new display location as controlled by graphical user interfaces.
The evolution of the computer industry is arguably unparalleled in its rate of growth and complexity. Personal computers, for example, which began as little more than feeble calculators with limited memory, tape-driven input and monochrome displays are now able to tackle almost any data processing task. While this meteoric increase in power was almost sufficient to satisfy the demand of application programmers and end users alike, the corresponding increase in complexity created an ease-of-use problem which the industry was somewhat slower in solving. Thus, designers were faced with a new challenge: to harness this computing power in a form usable by even those with relatively little computer training to smooth the transition of other industries into a computer-based information paradigm.
As a result, in the early to mid-1980's many new I/O philosophies, such as “user friendly”, “WYSIWYG” and “menu driven” came to the forefront of the industry. These concepts are particularly applicable to microcomputers, also known as personal computers, which are intended to appeal to a broad audience of computer users, including those who previously feared and mistrusted computers. An important aspect of computers which employ those concepts was, and continues to be, the interface which allows the user to input commands and data and receive results, which is commonly referred to as a graphical user interface (GUI).
One type of GUI is based on a visual metaphor which uses a monitor screen as a work surface called a “desktop” where documents are presented in relocatable regions termed “windows”. The user interacts with the computer by, for example, moving objects on the desktop, choosing commands from menus, and manipulating window controls, such as check-boxes and scroll bars. An exemplary desktop screen is reproduced as FIG. 1.
The success of this type of interface is evident from the number of companies which have emulated the desktop environment. Even successful concepts, however, must continually be improved in order to keep pace with the rapid growth in this industry. The advent of multimedia, especially CD-ROM devices, has provided vast quantities of secondary storage which have been used to provide video capabilities, e.g., live animation and video clips, as regular components of application displays. With these new resources at their disposal, application designers, and others, desire more and more control over the appearance of the display, including the desktop environment and, in particular, objects on the desktop.
Windows, filing cabinets, folders and documents are several examples of conventional desktop objects which extend the desktop visual metaphor. Folder windows can be configured to “spring” open when a user holds an item over a container item (e.g., a disk, folder, catalog, mailbox, viewer, server, or trash icon) which has one or more folders therein. Folder windows that are sprung open are temporarily centered under the cursor or as close to this centered position as possible while remaining on one monitor.
Occasionally, the folder windows which are sprung open by the user's actions relative to a container object are already open elsewhere on the desktop. Consider, for example, that a folder entitled “Five” is embedded in a hierarchical tree of folders such that folder “One” holds folder “Two” which holds folder “Three” which holds folder “Four” which holds folder “Five”. That is, to open folder “Five”, a user would open folders One, Two, Three, Four and Five in that order. This could result, for example, in the cascaded series of open folder windows shown in FIG. 2. Note that these folder windows are numbered 1, 2, 3, 4 and 5, respectively, for ease of reference in this text and that the folders and their respective folder windows will both be referred to using the same numbers.
Now suppose that a user springs open a container which happens to include folder 3 therein. As mentioned above, folder windows which are sprung open are drawn centered at the cursor location, if possible. Thus, folder window 3 will be closed at its location in the display space between the cascaded folder windows 2 and 4 and redrawn at a location centered on the cursor. This example is illustrated in FIG. 3. Note that the folder windows 1, 2, 4, and 5 are opened in a first portion 10 of the display space 12, but folder window 3 has been sprung open at a second portion 14 of the display space 12 centered about a cursor (not shown). A gap is left between windows 2 and 4 in the position vacated by folder window 3.
When the user releases the mouse button, or otherwise completes the drag, only the destination folder and folders that were open before the drag operation began remain open, e.g., folders 1-5 in this example. If folder 3 is not the destination folder, then this window would close at its displayed location in portion 14 of display space 23. Conventionally, folder window 3 would then be redrawn on top of folder window 5 in portion 10 of the display space 12 as seen in FIG. 4. However, this is considered to be undesirable since folder 3 now appears out of order with respect to folders 1, 2, 4 and 5 and blocks the view of the title bars of the other folder windows.